2. Technical Backgrounds
|
 |
 |
USB provides a very convenient manner for the end-user
to connect a variety of devices, such as keyboards, scanners,
printers, storage devices, etc.
Below the surface however, it's a very complex system of
high speed signals, power distribution and protocols.
In order to create a true standard, the USB Implementers Forum (USB-IF)
supervises and monitors the implementation of the USB 2.0 standard,
to which all USB devices should comply.
Creating a standard is not an easy task. The USB-IF has to protects the
interest of both manufacturers and end-users, advise on protocol standards,
and still allow maximum flexibility for all parties. The USB-IF is a non-profit
organisation, formed by many players in the international mass market.
|
USB Classes
|
 |
 |
USB devices are devided into classes and each class has its own specification,
protocols, etc. E.g. printers fall into a different class then, say, a keyboard
as it's a completely different device, using different data rates, protocols,
drivers and software.
|
Technical structure
|
 |
 |
The internal organisation within a device is very strict. At the top level
we've got the Device (e.g. a keyboard). Common things, such as power requirements, control, configuration and speed are defined at Device level.
Different Configurations may exist within the Device, but only one can be
active at any time. Most devices have only one Configuration though.
Within the current Configuration are one or more Interfaces.
A simple device, such as a mouse,
will generally contain just one Interface. More complex interfaces (e.g.
a webcam or a keyboard/mouse combination) may contain multiple Interfaces.
Each interface may have one or more Alternates defined. Alternate interfaces
may be used whenever the host system wants to select a
specific feature. E.g. a webcam generally has a large number of Alternates for
its camera interface, each specifying a different packet size. It's then up to
the host system to select the Alternate that best fits the available bandwidth.
Each Interface (or indeed Alternate Interface) may have any number of Endpoints.
An Endpoint is the lowest level within the Device and can only be used for a
single task. The data in an Endpoint can flow in only one direction (IN or OUT)
and the Endpoint Type determines how the data will be handled. Endpoints can be
of the type Control, Interrupt, Bulk or Isochronous.
One Endpoint (Endpoint 0) will always be present. This endpoint is of the type
Control and is the prime entrance when 'talking' to the Device. All other
Endpoints are optional. If a device is bi-directional (e.g. a printer) it needs
at least two more Endpoints: one for Bulk Data IN and one for Bulk Data OUT.
|
|
|
The Status window of !USBinfo, will show the above internal structure in a
graphical manner, like this:
|
|
|
© Copyright Paul Reuvers
X-Ample Technology bv
usb@xat.nl
Last changed: Last changed: Friday, 25 July 2003 - 14:14 CET.
|
|